/*
 * SimpleWorld.h
 *
 *  Created on: Jun 29, 2010
 *      Author: Ry
 */

#ifndef SIMPLEWORLD_H_
#define SIMPLEWORLD_H_

#include <vector>

#include "Object.h"
#include "World.h"
#include "Camera.h"

class SimpleWorld: public World {
protected:
	Camera *defaultCamera;
	Camera *camera;
	std::vector<Object*> objects;

public:
	SimpleWorld();

	Object* newObject();
	Object* newObject(Prototype *prototype);
	void addObject(Object *object);

	void step(float dts);
	void draw();
	virtual ~SimpleWorld();
    Camera *getCamera() const
    {
        return camera;
    }

    std::vector<Object*> getObjects() const
    {
        return objects;
    }

    void setCamera(Camera *camera)
    {
        this->camera = camera;
    }

    void setObjects(std::vector<Object*> objects)
    {
        this->objects = objects;
    }

};

#endif /* SIMPLEWORLD_H_ */
